var readline = require('readline-sync')
readline.setDefaultOptions({prompt: ''})
var readline = readline.prompt
let n = readline();
for(let i=0;i<n;i++) {
    let str = readline(); // 读出每一行的数字
    console.log(cleanText(str)); // 打印处理的值
}

function cleanText(str) {
    if(!str || str.length < 3) return str; // 如果长度小于3 就直接返回
    let singleMeet = 0; // 单个重复的
    let dualMeet = 0; // 两个重复的个数
    let current = ""; // 当前的字符
    let result = []; // 结果数组
    for(let i=0,len=str.length;i<len;i++) { // 从头开始遍历  一直到最后一个
        if(current === str[i]) { // 如果当前的和这个str[i]相等的话
            singleMeet++; // 单独的个数就++
            if(singleMeet==2) { // 如果单独的个数等于二
                dualMeet++; // 重复的个数就++
            }
        }
        else { // 如果current不和str[i]相等的话
            if(singleMeet===1 || dualMeet===2) { // 判断单独的重复的是不是等于1 或者 重复的个数等于2
                dualMeet = 0; // 如果是 就让重复的个数等于0
            }
            singleMeet = 1; // 单独的重复的等于1
        }
        current = str[i]; // 让现在的等于str[i] 下一次判断的时候就会初始赋值
        if(singleMeet < 3 && !(singleMeet===2 && dualMeet ===2)) { // 如果单独的重复的小于3 并且 单独的重复的和两个重复的不等于2 就把当前的元素方苏结果数组中
            result.push(current);
        }
    }
    return result.join("");
}